The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
This disclosure relates to a method and system for reading from a storage device. Data is stored in various different data sectors on storage devices. Read commands are transmitted to read and decode codewords stored in these different sectors. One of the factors that determines the amount of decoding time required to decode a codeword is the signal-to-noise ratio (SNR) associated with the read operation for that given codeword.
In magnetic recording, as one example of a type of recording, codewords are read and decoded sequentially based. on the position of the codeword in a read command that lists the order in which particular codewords are to be read from the storage device. As a result of the applied read command, a read channel reads and attempts to decode the codeword. Depending on the SNR of the read operation for a particular codeword, certain codewords may require a longer period of time to complete decoding than other codewords with higher SNRs.
The traditional systems for reading and decoding codewords from storage devices are inefficient. Codewords that are read from the storage device are input to a two codeword decoder engine. Upon completion of decoding, codewords must be stored in the read channel until all codewords input to the decoder engine before them have completed decoding. Accordingly, a particular codeword that takes a longer time than others to be decoded delays output of the others until the particular codeword completes decoding. The read channel can only be flushed of decoded codewords once the earlier input codeword completes decoding. These systems not only require a large memory for the read channel, but in the event that the read channel runs out memory, decoding of earlier input codewords have not finished being decoded may have to be aborted to flush out the codewords that have already completed decoding.